\subsubsection{Características de la red neuronal elegida}
El problema exige simular la función $seno(x + 2*y)$. Para esto utilizamos una red donde el tamaño de la entrada es dos ($x$ e $y$) y el tamaño de salida es uno (el resultado de operar sobre $x$ e $y$).
Luego de varios intentos con distintas arquitecturas decidimos definir una que tuviera 3 capas ocultas con 15 neuronas en la primera capa, 40 en la segunda y 25 en la tercera. Como funci\'on de activaci\'on usamos la tangente hiperbólica (de nombre "`tansig"' en MATLAB) en las capas ocultas, mientras que en la capa de salida usamos la identidad ("`purelin"' en MATLAB).
Para el entrenamiento se eligió utilizar el descenso por gradiente como m\'etodo de actualizaci\'on de los pesos. A continuaci\'on mostramos algunos gr\'aficos de los resultados de dicho entrenamiento:

			\begin{figure}[H]
				\centering
				\noindent\includegraphics[scale=0.75]{img/ej2/red-gradiente-error.png}
				\caption{
					Grafico del error en función de la iteración.
				}
				\label{fig:Error}
			\end{figure}
			\begin{figure}[H]
				\centering
				\noindent\includegraphics[scale=0.75]{img/ej2/red-gradiente-tool.png}
				\caption{
					Este es el estado de la red después de haber terminado de entrenar.
				}
				\label{fig:Error}
			\end{figure}
			\begin{figure}[H]
				\centering
				\noindent\includegraphics[scale=0.75]{img/ej2/red-gradiente-gradiente.png}
				\caption{
					Grafico del valor del gradiente (delta) en funcion de la iteración. (grafico superior)
				}
				\label{fig:Error}
			\end{figure}

\subsubsection{Conjunto de entrenamiento}
El problema est\'a definido de modo tal que tanto las entradas como las salidas son valores float. Para el conjunto de entrenamiento se decidió tomar floats al azar dentro del los intervalos [-10,10] para $x$ y [-5,5] para $y$ tal que $x + 0.5*y \in [0, 2*\pi] $. 

			\begin{figure}[H]
				\centering
				\noindent\includegraphics[scale=0.4]{img/ej2/entradas-seno.jpg}
				\caption{
					Una de las entradas generadas al azar para entrenar la red.
				}
				\label{fig:Error}
			\end{figure}
	\begin{figure}[H]
		\centering
		\noindent\includegraphics[scale=.5]{img/ej2/dominio.png}
		\caption{
			Imagen del dominio donde tomamos valores para el conjunto de entrenamiento
		}
	\end{figure}

\subsubsection{Pruebas y Resultados}
Para medir la red se tomaron varias pruebas, la primera de ellas fue graficar el resultado de evaluar un conjunto de valores en la red versus evaluar el mismo conjunto con la función seno provista por Matlab.
A continuación la comparación de graficos:


			\begin{figure}[H]
				\centering
				\noindent\includegraphics[scale=0.75]{img/ej2/funcion-seno.jpg}
				\caption{
					Gráfico de $z = sen(x + 0.5*y)$
				}
				\label{fig:Error}
			\end{figure}
			\begin{figure}[H]
				\centering
				\noindent\includegraphics[scale=0.75]{img/ej2/red-evaluada.jpg}
				\caption{
					Grafico de la red evaluada en los mismos puntos que el seno.
				}
				\label{fig:Error}
			\end{figure}

Luego, como fue pedido por la materia se tomaron un par de conjuntos de valores discretizados. Un conjunto perteneciente al dominio para el cual la red fue entrenada ($[0,\pi ]\times [0, \pi ]$) y otro para el cual no ( $[2*\pi ,3*\pi ]\times [2*\pi , 3*\pi ]$ ) con el fin de medir las capacidades de interpolación y extrapolación de nuestra red. Para medir tal capacidad de representación decidimos tomar el error cuadrático medio como un buen indicador. Estas mediciones var\'ian en cada entrenamiento de la red ya que \'esta se entrena de forma aleatoria, por lo que sobre todos estos errores medios se tom\'o el promedio de ellos. As\'i, se obtuvo que el error promedio para interpolar fue de $0,6$ y el error promedio de extrapolar fue $1,97$.

